Many digital systems have multiple clock domains. Thus, when signals move from one clock domain to another, they must be synchronized to avoid metastability and synchronization failure. If the two clocks have fixed frequencies, the phase relationship between the two clocks is periodic, at the beat frequency of the two clocks. By taking advantage of this periodic phase relationship, a periodic synchronizer can be simpler, have lower latency, and a lower probability of failure than a synchronizer that has to handle completely asynchronous signals.
Unfortunately, traditional periodic synchronizers exhibit various limitations. For example, most existing systems' signals are synchronized with a periodic clock using asynchronous first-in-first outs (FIFOs). These incur a significant area overhead for the FIFO memory. They also add several cycles of delay as the Gray-coded input and output pointers of the FIFO must be synchronized through multiple flip-flops to move them across clock domains.
There is thus a need for addressing these and/or other issues associated with the prior art.